home *** CD-ROM | disk | FTP | other *** search
- #pragma once
-
- #include "ArrayListLib.h"
- #include "EventLib.h"
- #include "FileLib.h"
- #include "LLHandleLib.h"
-
- /* window layers */
- typedef enum {
- WIN_LAYER_NONE = 0,
- WIN_LAYER_FIRST = 1,
- WIN_LAYER_DOCUMENT = 1,
- WIN_LAYER_FLOAT,
- WIN_LAYER_MODAL,
- WIN_LAYER_LAST
- } WindowLayerType;
-
- /* special window kinds */
- typedef enum {
- WIN_KIND_EXTRA = userKind + 1,
- WIN_KIND_DOCUMENT,
- WIN_KIND_LAST
- } WindowKindType;
-
- /* Structure of a 'WIND' resource. Other than the lack of a trailing
- itemsID field, this structure is identical to the DialogTemplate
- structure given in IM-1, p430. */
- typedef struct {
- Rect boundsRect;
- short procID;
- Boolean visible;
- Boolean filler1;
- Boolean goAwayFlag;
- Boolean filler2;
- long refCon;
- Str255 title;
- } WindowTemplate;
-
- /* structure containing additional information about a window */
- typedef struct {
- LLType next; /* next window in layer */
- WindowPtr window; /* window to which data belong */
- WindowLayerType layer; /* window's layer */
- ArrayListHandle tablist; /* objects to switch to when tab key is pressed */
- EventType *objects; /* objects registered in window */
- EventType *focus; /* object with input focus */
- EventIDType item; /* id of last object clicked */
- Boolean visible; /* true if window was visible on suspend */
- Boolean dialog; /* true if window is also a dialog */
- Rect dfltpos; /* default position of window */
- short icon; /* icon to display in top left corner (alerts) */
- void *filter; /* filter function (modal dialogs) */
- void *filterData;/* application defined data for modal dialogs */
- void *data; /* application defined data */
- } WindowExtraType, *WindowExtraPtr, **WindowExtraHandle;
-
- /* validation */
- Boolean WinValid(WindowPtr window);
-
- /* extra data */
- WindowExtraPtr WinExtraPtr(WindowPtr window);
- WindowExtraHandle WinExtraHandle(WindowPtr window);
- void WinExtraSet(WindowPtr window, WindowExtraHandle extra);
-
- /* application defined data */
- void *WinData(WindowPtr window);
- void WinDataSet(WindowPtr window, void *data);
-
- /* properties and attributes */
-
- Boolean WinVisible(WindowPtr window);
- Boolean WinVisibleFully(WindowPtr window);
- short WinKind(WindowPtr window);
- void WinKindSet(WindowPtr window, short kind);
-
- Boolean WinIsSystem(WindowPtr window);
- Boolean WinIsDialog(WindowPtr window);
- Boolean WinIsUser(WindowPtr window);
- Boolean WinIsModal(WindowPtr window);
- Boolean WinIsFloat(WindowPtr window);
-
- Boolean WinHasExtra(WindowPtr window);
- Boolean WinHasGoAway(WindowPtr window);
- Boolean WinHasGrow(WindowPtr window);
- Boolean WinHasDrag(WindowPtr window);
- Boolean WinHasZoom(WindowPtr window);
- Boolean WinHasFocus(WindowPtr window);
-
- void WinTitle(WindowPtr window, CStr255 title);
- void WinTitleSet(WindowPtr window, const char *title);
-
- Boolean WinModalHasFocus(void);
-
- /* window object lists */
- EventType *WinObjects(WindowPtr window);
- EventType *WinFocus(WindowPtr window);
- void WinFocusSet(WindowPtr window, EventObjectType object);
- void WinRegister(WindowPtr window, EventObjectType object,
- const EventTableType *table);
- void WinUnregister(WindowPtr window, EventObjectType object);
- void WinRegisterID(WindowPtr window, EventObjectType object, EventIDType id);
- EventObjectType WinRegisteredID(WindowPtr window, EventIDType id);
- Boolean WinHasTabList(WindowPtr window);
- void WinTabRegister(WindowPtr window, EventObjectType object);
- void WinTabUnregister(WindowPtr window, EventObjectType object);
- void WinTab(WindowPtr window);
- const EventTableType *WinObjectTable(WindowPtr window, EventObjectType object);
- void WinObjectTableSet(WindowPtr window, EventObjectType object,
- const EventTableType *table);
-
- /* window layers */
- WindowLayerType WinLayer(WindowPtr window);
- void WinLayerSet(WindowPtr window, WindowLayerType layer);
-
- /* accessing the list of windows */
- WindowPtr WinFirst(WindowLayerType layer);
- WindowPtr WinFirstVisible(WindowLayerType layer);
- WindowPtr WinNext(WindowPtr window);
- WindowPtr WinNextVisible(WindowPtr window);
- WindowPtr WinFirstVisibleNonFloat(void);
- WindowPtr WinNextVisibleNonFloat(WindowPtr window);
-
- /* displaying and selecting */
- void WinHilite(WindowPtr window, Boolean hilite);
- void WinShow(WindowPtr window);
- void WinHide(WindowPtr window);
- void WinSelect(WindowPtr window);
-
- /* rectangles */
- void WinRectangles(WindowPtr window,
- Rect *structureRect,
- Rect *contentRect,
- Rect *dragRect,
- Rect *newRect);
- void WinNewRect(WindowPtr window, Rect *newRect);
- void WinDragRect(WindowPtr window, Rect *dragRect);
- void WinPortRect(WindowPtr window, Rect *portRect);
- void WinContentRect(WindowPtr window, Rect *contentRect);
- void WinStructureRect(WindowPtr window, Rect *structureRect);
-
- /* resizing windows */
- void WinSizeRect(WindowPtr window, Rect *minmax);
- void WinSizePreferred(WindowPtr window, short *width, short *height);
- void WinResize(WindowPtr window, short dh, short dv);
-
- /* drawing */
- void WinDrawGrowIcon(WindowPtr window);
-
- /* positioning and sizing */
- Boolean WinCouldDrag(WindowPtr window, const Rect *bounds);
- Boolean WinCanDrag(WindowPtr window);
- void WinStagger(WindowPtr window, Boolean constantSize,
- short width, short height);
- void WinPosition(DialogPtr dlg, short h, short v);
- void WinMove(WindowPtr window, short left, short top);
- void WinSize(WindowPtr window, short width, short height);
- void WinDrag(WindowPtr window, Point where);
- void WinGrow(WindowPtr window, Point where);
-
- /* zooming and saving and restoring window positions */
- void WinZoom(WindowPtr window, short part);
- void WinZoomState(WindowPtr window, WStateData *zoomState);
- void WinZoomStateSet(WindowPtr window, const WStateData *zoomState);
- void WinZoomPrepare(WindowPtr window);
- void WinZoomReset(WindowPtr window);
- void WinZoomRemember(WindowPtr window);
- void WinZoomRead(WindowPtr window, short id);
- void WinZoomWrite(WindowPtr window, short id);
- void WinZoomSave(WindowPtr window, FileType *fp, short id);
- void WinZoomRestore(WindowPtr window, FileType *fp, short id);
-
- /* event handling */
- void WinActivate(WindowPtr window, Boolean active);
- void WinUpdate(WindowPtr window);
- void WinSuspend(void);
- void WinResume(void);
- const EventTableType *WinEventTable(void);
- void WinEventTableRegister(void);
-
- /* window creation and destruction */
- void WinUninitialize(WindowPtr window);
- void WinInitialize(WindowPtr window, WindowLayerType layer);
- WindowPtr WinAdjustTemplate(WindowTemplate *wind, WindowLayerType *layer);
- WindowPtr WinGet(short id);
- WindowPtr WinBegin(short procID, Boolean goAwayFlag);
- void WinEnd(WindowPtr window);
-